<?php

namespace App\Helpers;

/**
 * 日期转换类
 * Class DateUtils
 * @package App\Helpers
 */
class DateUtils
{
    public static function toInt($obj)
    {
        return is_numeric($obj) ? intval($obj) : 0;
    }

    public static  function getToday()
    {
        return date("Y-m-d H:i:s",time());
    }

    public static  function getTodayTime()
    {
        return date("Y-m-d",time());

    }

    //转时间   今天 昨天 2016-8-3
    public static function formatToDay($param)
    {
        $time          = strtotime(date('Y-m-d', time()));
        $create_time   = explode(' ', $param);
        $createTimeStr = strtotime($param);
        if ($time - $createTimeStr == 0) {
            $createTime = '今天';
        } else if ($time - $createTimeStr == 86400) {
            $createTime = '昨天';
        } else {
            $createTime = $create_time[0];
        }
        return $createTime;

    }

    //转时间  2016-12-25
    public static function formatDate($string = '')
    {
        if (empty($string)) {
            return '';
        }

        $formatDate = explode(' ', $string);
        return $formatDate[0];
    }

    //转时间  2016/12/25 14:58
    public static function formatDateToMin($string = '')
    {
        $strtotime = strtotime($string);
        return date('Y/m/d H:i', $strtotime);
    }

    /**
     * @param $money
     * @return string
     * 万为单位的转换
     */
    public static function formatMoney($money)
    {
        //贷款成功数
        if ($money >= 10000) {
            return sprintf("%.1f", $money / 10000) . '万';
        } else {
            return $money . '';
        }
    }

    /**
     * @param $money
     * @return string
     * 万为单位的转换——向上取整
     */
    public static function ceilMoney($money)
    {
        //将10001 转换成 1.1万
        if ($money >= 10000) {
            $money = ceil($money / 1000);
            return sprintf("%.1f", $money / 10) . '万';
        } else {
            return $money . '';
        }
    }

    /**
     * @param $money
     * @return string
     * 万为单位的转换  取整
     */
    public static function formatMoneyToInt($money)
    {
        if ($money >= 100000) {
            return sprintf("%.0f", $money / 10000) . '万元';
        } else {
            return $money . '元';
        }
    }

    public static function formatTimeToYear($time)
    {
        if ($time >= 30 && $time < 360) {
            return sprintf("%.0f", $time / 30) . '个月';
        } elseif ($time >= 360) {
            return sprintf("%.0f", $time / 360) . '年';
        } else {
            return $time . '天';
        }
    }


    ///////////////////////// 分页/////////////////////////////
    /*
    * @desc    分页
    * @param   array   $data   所有数据
    * @param   num     $page   每页显示条数
    * @desc    num     $num    页码
    * */
    public static function pageInfo($data, $page = 1, $num = 5)
    {
        //总条数
        $total = count($data);
        //总页数
        $pageTotal = ceil($total / $num);
        //偏移量
        $offset = ($page - 1) * $num;
        //分页显示
        $new_data  = [];
        $total_num = $num * $page;
        for ($i = $offset; $i < $total_num; $i++) {
            if (isset($data[$i])) {
                $new_data[] = $data[$i];
            }
        }
        $newData['list']      = $new_data;
        $newData['pageCount'] = $pageTotal;

        return $newData;
    }

    /**
     * @param array $data
     * 过滤空数组，重新整合key值
     */
    public static function formatArray($data = [])
    {
        $data = array_filter($data);
        $data = array_values($data);
        return $data ? $data : [];
    }


    /**
     * 根据出生年月日计算出生日
     * @param  $birthday 出生时间 uninx时间戳
     * @param  $time 当前时间
     **/
    public  static function getAge($birthday){
        //格式化出生时间年月日
        $byear=date('Y',$birthday);
        $bmonth=date('m',$birthday);
        $bday=date('d',$birthday);

        //格式化当前时间年月日
        $tyear=date('Y');
        $tmonth=date('m');
        $tday=date('d');

        //开始计算年龄
        $age=$tyear-$byear;
        if($bmonth>$tmonth || $bmonth==$tmonth && $bday>$tday){
            $age--;
        }
        return $age;
    }
}
